>>(bitwise right shift)

 

ÊÄÏí æÙíÝÉ ãÞÇÑÈÉ ãä æÙíÝÉ <<(bitwise left shift) , æáßäåÇ ÊÎÊáÝ ÚäåÇ Ýí ÃäåÇ ÊÞæã ÈÅÒÇÍÉ ÇáÑÞã ÇáÃíÓÑ Åáí Çáíãíä ,æÇáãËÇá ÇáÊÇáí íæÖÍ ÇáÅÒÇÍÉ Åáí Çáíãíä.

ãËÇá:

var x = Number(2)

trace(2 >> 1);

 

æåÐå åí ÇáÎØæÇÊ ÇáÊí íÞæã ÈåÇ ÇáÈÑäÇãÌ áÊäÝíÐ Ðáß ÇáßæÏ:

1.    ÅäÔÇÁ ãÊÛíÑ x ÚÏÏí ÞíãÊå ÇáÚÏÏ(2)

2.    ÊÍæíá ÇáÚÏÏ (2) ãä ÇáäÙÇã ÇáËäÇÆí Åáí ÇáäÙÇã ÇáÚÔÑí ßÇáÊÇáí:

ÚÔÑí

ËäÇÆí

2

0010

 

íÊÍæá ÇáÚÏÏ (2) ÈÇáäÙÇã ÇáÚÔÑí Åáí ÇáÚÏÏ (0010) ÈÇáäÙÇã ÇáËäÇÆí.

3.    íÞæã ÇáÈÑäÇãÌ ÈÅÒÇÍÉ ÇáÚÏÏ Åáí Çáíãíä ãÑÉ æÇÍÏÉ íÖíÝ ãÚåÇ ÕÝÑ Åáí ÇáíÓÇÑ æíÞæã ÈÍÐÝ ÇáÕÝÑ ÇáãæÌæÏ ÃÞÕí íãíä ÇáÚÏÏ ,ÝíÊÍæá ÇáÚÏÏ Åáí 0001 æåæ ãÇ íÓÇæí ÇáÚÏÏ (1) ÈÇáäÙÇã ÇáÚÔÑí .

4.    íÚÑÖ ÇáÈÑäÇãÌ ÇáÚÏÏ (1) Ýí äÇÝÐÉ output .

 

ãËÇá ÂÎÑ:

var x:Number = 4

trace(x >> 2);

ÇáÎØæÇÊ :

     1. íÞæã ÇáÈÑäÇãÌ ÈÅäÔÇÁ ãÊÛíÑ ÚÏÏí x áå ÞíãÉ(4)  .

2. íÍæá ÇáÈÑäÇãÌ ÇáÚÏÏ (4) ãä ÇáäÙÇã ÇáÚÔÑí Åáí ÇáäÙÇã ÇáËäÇÆí ßÇáÊÇáí:

ÚÔÑí

ËäÇÆí

4

0100

   

íÊÍæá ÇáÚÏÏ (4) ÈÇáäÙÇã ÇáÚÔÑí Åáí ÇáÚÏÏ (0100) ÈÇáäÙÇã ÇáËäÇÆí.

3. íÞæã ÇáÈÑäÇãÌ ÈÅÒÇÍÉ ÇáÚÏÏ Åáí Çáíãíä ãÑÊÇä ,Ýí ßá ãÑÉ íÖÇÝ ÕÝÑ Åáí ÇáíÓÇÑ æíÍÐÝ ÕÝÑ ãä Çáíãíä Ýíßæä ÇáÚÏÏ ÇáäåÇÆí åæ (0001) .

4. íÞæã ÇáÈÑäÇãÌ ÈÊÍæíá ÇáÚÏÏ (0001) ãä ÇáäÙÇã ÇáËäÇÆí Åáí ÇáäÙÇã ÇáÚÔÑí ÝíÕÈÍ (1) æåæ ãÇ íÙåÑ Ýí äÇÝÐÉ output .

 

ãÞÇÑäÉ Èíä (<<bitwise left shift) æ >>(bitwise right shift)

 

íæÖÍ ÇáÌÏæá ÇáÊÇáí ÚãáíÉ ÅÒÇÍÉ ÇáÚÏÏ 7 ãÑÉ Åáí Çáíãíä æ ãÑÉ Åáí ÇáíÓÇÑ ÈãÞÏÇÑ ËáÇË ãÑÇÊ .

 

ÇáÚÏÏ ÈÇáäÙÇã ÇáËäÇÆí

ÇáÚÏÏ ÈÇáäÙÇã ÇáÚÔÑí

<<(bitwise left shift)

ÇáäÇÊÌ

>>(bitwise right shift)

ÇáäÇÊÌ

16

10000

10000000

128

00010

2

ÇáÕíÛÉ

trace(7 << 3);

trace(7 >> 3);